from abc import ABC, abstractmethod
import typing as T

from ..dto.PageParam import PageParam
from ..dto.Emp import Emp
from ..dto.OperateLog import OperateLog


class EmpsService(ABC):
    @abstractmethod
    async def list(self, pageParam: PageParam): ...

    @abstractmethod
    async def delete(self, ids: str): ...

    @abstractmethod
    async def save(self, emp: Emp): ...

    @abstractmethod
    async def getById(self, id: int): ...

    @abstractmethod
    async def update(self, emp: Emp): ...

    @abstractmethod
    async def login(self, username: str, password: str): ...
